Software development is a process of writing and maintaining source code. In a broader sense, software development includes all that is involved between the conception of desired software and the final manifestation of that software, ideally in a planned and structured process. Thus, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. For simple programs or for programs for personal use, following a planned and structured process is not essential. However, for programs that are relatively large or that are for commercial use, following well-known software development standards is critical.
Many companies employ a code review process to ensure that the number of software bugs and other issues are caught before release of software. “Code review” (or “peer review”) is the systematic examination of computer source code. Code review is intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills. Some software developers use specialized software tools, such as Review Board, that are designed for peer code review. Such code review tools allow people to collaboratively inspect and discuss code changes while storing the history of the code changes for future reference.
However, current code review tools are limited in that people involved in a software project do not know how a proposed code change will affect the overall project. For example, a code change might not fix an old error and, at the same time, introduce new errors. The submitter of the code change (or an individual affiliated with the corresponding project) will have to manually run the tools and tests necessary to see the effect of the code change.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.